# MongoDB Atlas

[MongoDB Atlas](https://www.mongodb.com/docs/atlas/) 是一种在 AWS、Azure 和 GCP 上提供的全托管云数据库。它现在支持在 MongoDB 文档数据上进行本地向量搜索。

## 安装和设置

请参阅[详细配置说明](/docs/integrations/vectorstores/mongodb_atlas)。

我们需要安装 `langchain-mongodb` Python 包。

```bash
pip install langchain-mongodb
```

## 向量存储

请参阅[使用示例](/docs/integrations/vectorstores/mongodb_atlas)。

```python
from langchain_mongodb import MongoDBAtlasVectorSearch
```

## LLM 缓存

### MongoDBCache

这是在 MongoDB 中存储简单缓存的抽象。它不使用语义缓存，也不需要在生成之前在集合上创建索引。

要导入此缓存：

```python
from langchain_mongodb.cache import MongoDBCache
```

要将此缓存与您的 LLMs 一起使用：

```python
from langchain_core.globals import set_llm_cache
# 使用任何嵌入提供程序...
from tests.integration_tests.vectorstores.fake_embeddings import FakeEmbeddings
mongodb_atlas_uri = "<YOUR_CONNECTION_STRING>"
COLLECTION_NAME="<YOUR_CACHE_COLLECTION_NAME>"
DATABASE_NAME="<YOUR_DATABASE_NAME>"
set_llm_cache(MongoDBCache(
    connection_string=mongodb_atlas_uri,
    collection_name=COLLECTION_NAME,
    database_name=DATABASE_NAME,
))
```

### MongoDBAtlasSemanticCache

语义缓存允许用户根据用户输入和先前缓存结果之间的语义相似性检索缓存提示。在内部，它将 MongoDBAtlas 同时作为缓存和向量存储进行混合处理。

MongoDBAtlasSemanticCache 继承自 `MongoDBAtlasVectorSearch`，需要定义 Atlas 向量搜索索引才能工作。请查看[使用示例](/docs/integrations/vectorstores/mongodb_atlas)以了解如何设置索引。

要导入此缓存：

```python
from langchain_mongodb.cache import MongoDBAtlasSemanticCache
```

要将此缓存与您的 LLMs 一起使用：

```python
from langchain_core.globals import set_llm_cache
# 使用任何嵌入提供程序...
from tests.integration_tests.vectorstores.fake_embeddings import FakeEmbeddings
mongodb_atlas_uri = "<YOUR_CONNECTION_STRING>"
COLLECTION_NAME="<YOUR_CACHE_COLLECTION_NAME>"
DATABASE_NAME="<YOUR_DATABASE_NAME>"
set_llm_cache(MongoDBAtlasSemanticCache(
    embedding=FakeEmbeddings(),
    connection_string=mongodb_atlas_uri,
    collection_name=COLLECTION_NAME,
    database_name=DATABASE_NAME,
))
```